Resource Public Key Infrastructure
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
Resource Public Key Infrastructure ( RPKI ), également connue sous le nom de Resource Certification, est un usage spécialisé d'infrastructure à clé publiques (PKI) destiné à améliorer la sécurité du routage BGP d'Internet.
RPKI fournit un moyen de relier les informations sur les ressources d'Internet (telles que les numéros de système autonome et les adresses IP ) à une autorité de certification. La structure du certificat reflète la manière dont les ressources des ressources d'Internet sont distribuées. Les ressources sont initialement distribuées par l'IANA aux registres Internet régionaux (RIR), qui les distribuent à leur tour aux registres Internet locaux (LIR), qui distribuent ensuite les ressources à leurs clients. RPKI est utilisé par les détenteurs légitimes des ressources pour contrôler le fonctionnement des protocoles de routage Internet afin d'empêcher une interception du trafic ou des erreurs de fuites de routes. RPKI est utilisé pour sécuriser principalement le Border Gateway Protocol (BGP) via la validation des l'origine des routes (ROV). Il peut-être également utilisé dans le Neighbor Discovery Protocol (ND) d'IPv6 via le protocole Secure Neighbor Discovery (SEND).
Contents
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Certificats de ressources
RPKI utilise des certificats PKI de type X.509 (RFC 5280cite-ref-rfc-5280-1-0[1]) avec des extensions pour les adresses IP et les identifiants AS (RFC 3779cite-ref-rfc-3779-2-0[2]). Ces certificats sont émis par les membres des registres Internet régionaux, appelés registres Internet locaux (LIR). Ils leur offrent une preuve de possession pouvant être validée, bien que le certificat ne contienne aucune information d'identité. À l'aide du certificat de ressource, les LIR peuvent créer des attestations cryptographiques sur les annonces d'itinéraire qu'ils autorisent à être faites avec les préfixes et les ASN qu'ils détiennent. Ces attestations sont décrites ci-dessous.
Origine des routes
Une autorisation d'origine de route (ROA)cite-ref-3[3] indique quel système autonome (AS) est autorisé à annoncer certains préfixes IP. Il détermine également la longueur maximale du préfixe que l'AS est autorisé à annoncer.
Longueur maximale du préfixe
Lorsqu'il est présent, il spécifie la longueur du préfixe IP le plus spécifique que l'AS est autorisé à annoncer. Par exemple, si le préfixe de l'adresse IP est 10.0.0.0/16 et que la longueur maximale est 22, l'AS est autorisé à annoncer tout préfixe inférieur à 10.0.0.0/16, à condition qu'il ne soit pas plus spécifique que /22 . Ainsi, dans cet exemple, l'AS serait autorisé à annoncer 10.0.0.0/16, 10.0.128.0/20 ou 10.0.252.0/22, mais pas 10.0.255.0/24 .
La longueur maximale du préfixe est un champ facultatif. Lorsqu'il n'est pas défini, l'AS est uniquement autorisé à annoncer exactement le préfixe spécifié. Toute annonce plus spécifique du préfixe sera considérée comme invalide. Il s'agit d'un moyen d'imposer l'agrégation et d'empêcher le détournement par l'annonce d'un préfixe plus spécifique.
Autorisations au transit du système autonome
Gestion et distribution des certificats
Il existe des outils open sourcecite-ref-5[5] disponibles pour administrer l'autorité de certification et gérer les certificats de ressources et les objets enfants tels que les ROA. De plus, les RIR disposent d'une plateforme RPKI qu'ils hébergent disponible sur leurs portails membres. Ils permetttent aux LIR de choisir de s'appuyer sur ce système hébergé ou d'exécuter leur propre logiciel.
RPKI ne possède pas d'unique référentiel pour les objets RPKI. Le système de référentiel RPKI se compose de multiples services de publication distribués et délégués. Chaque service de publication du référentiel est associé à un ou plusieurs points de publication de certificats RPKI. En pratique, cela signifie que lorsqu'un LIR gère une autorité de certification, il peut soit publier lui-même tout le matériel cryptographique, soit s’appuyer sur un tiers pour la publication. Lorsqu'un LIR choisit d'utiliser le système hébergé fourni par le RIR, la publication se fait en principe dans le référentiel du RIR.
Validation d'une annonce de route
Pour la validation, un logiciel utilisateur intermédiaire récupère, met en cache et valide les données du référentiel à l'aide de rsync ou du protocole RPKI Repository Delta (RFC 8182cite-ref-rfc-8182-6-0[6])cite-ref-7[7]. Il doit se synchroniser régulièrement avec tous les points de publication afin de conserver une vue complète et à jour des données du référentiel. Des données incomplètes ou périmées peuvent conduire à des décisions de routage erronéescite-ref-8[8]cite-ref-9[9]. Le temps de propagation RPKI peut également poser des problèmes de routagescite-ref-10[10]. Le logiciel intermédiaire de cache va creer une vue globale des annonces ROA valide.
Pour transmettre les données RPKI aux routeurs depuis ces serveurs de cache, il est possible d'employer le protocole "RPKI vers routeur" ou RTR (Resource Public Key Infrastructure to Router Protocol) décrit dans la RFC 6810cite-ref-rfc-6810-11-0[11]cite-ref-12[12]. Cisco proposent également pour leur plateforme IOS-XR l'utilisation de SSH pour sécuriser le transfert des autorisations RPKIcite-ref-13[13].
Lorsqu'une ROA a été créé pour une certaine combinaison d'AS d'origine et de préfixe, cela aura un effet sur la validité RPKIcite-ref-14[14] d'une ou plusieurs annonces de routes. Les routes sont alors séparées en 3 états:
• Valide (VALID) : L'annonce d'itinéraire est couverte par au moins un ROA
• Invalide (INVALID) : Le préfixe est annoncé par un AS incorrect. Cela peut signifier:
• Qu'il existe une ROA pour ce préfixe pour un autre AS.
• Que le préfixe est potentiellement annoncé de manière malveillante ou désagrégée par un autre AS.
• L'annonce est plus spécifique que ne le permet la longueur maximale définie dans un ROA qui correspond au préfixe et à l'AS. Cela peut être le cas lors de l'usage de RTBH qui peut entrer en conflit avec RPKIcite-ref-15[15].
• Inconnue (UNKOWN) : Le préfixe de cette annonce n'est pas couvert (ou seulement partiellement couvert) par un ROA existant.
Une fois cette validation de route on peut appliquer des décisions de routages.
Décisions de routage
Après validation des ROA, les routes certifiées peuvent être comparées aux routes apprises et aider les opérateurs de réseaux sur leur décisions de routes. L'impact de l'état de validité de la route sur la décision de routage peuvent être multiples. Cette décision de route est prise par le routeur et les politiques qu'on lui applique. Ainsi, il peut par exemple considérer les routes "INVALID" comme ne devant pas être prises en compte et les supprimer totalement, ou alors peut appliquer une préférence à l'égard de routes validées par RPKI. On peut également appliquer une communauté BGP particulière. Un ensemble de trois communauté étendue BGP well-known (0x4300 0x0000) sont réservées pour décrire l'état de validation et la propager aux pairs iBGP. 0x4300:0:0 pour les routes valides, 0x4300:0:1 pour les inconnues, et 0x4300:0:2 pour les routes invalides RPKI. Elles deviennent standard par la RFC 8097cite-ref-rfc-8097-16-0[16].
Implémentations
Cisco Systems offrent une prise en charge native sur de nombreuses plates-formescite-ref-17[17] pour utiliser RPKI sur la configuration du routeur et ses décisions de routescite-ref-18[18]. Juniper offrent une prise en charge sur toutes les plates-formescite-ref-19[19] qui exécutent la version 12.2 ou une version ultérieure de leur OS. Quagga possède cette fonctionnalité via BGP Secure Routing Extensions (BGP-SRx)cite-ref-20[20] ou par une implémentation RPKIcite-ref-21[21] entièrement conforme à la RFC basée sur RTRlib. Le logiciel de routage Bird permet également la validation RPKIcite-ref-22[22].
La librairie RTRlibcite-ref-23[23] est une implémentation open source écrite en C du protocole RTR et la vérification de l'origine du préfixe. La bibliothèque est utile aux développeurs de logiciels de routage mais également aux opérateurs de réseauxcite-ref-24[24]. Les développeurs peuvent intégrer RTRlib dans leur serveur BGP pour implémenter RPKI. Les opérateurs de réseaux peuvent utiliser RTRlib pour développer des outils de surveillance (par exemple, pour vérifier le bon fonctionnement des caches ou pour évaluer leurs performances).
RFC correspondantes
L'architecture RPKI est documentée initialement dans la RFC 6480cite-ref-rfc-6480-25-0[25]. Les spécifications techniques de RPKI sont documentées dans une série étendue de RFC : RFC 6481cite-ref-rfc-6481-26-0[26], RFC 6482cite-ref-rfc-6482-27-0[27], RFC 6483cite-ref-rfc-6483-28-0[28], RFC 6484cite-ref-rfc-6484-29-0[29], RFC 6485cite-ref-rfc-6485-30-0[30], RFC 6486cite-ref-rfc-6486-31-0[31], RFC 6487cite-ref-rfc-6487-32-0[32], RFC 6488cite-ref-rfc-6488-33-0[33], RFC 6489cite-ref-rfc-6489-34-0[34], RFC 6490cite-ref-rfc-6490-35-0[35], RFC 6491cite-ref-rfc-6491-36-0[36], RFC 6492cite-ref-rfc-6492-37-0[37], et RFC 6493cite-ref-rfc-6493-38-0[38]. SEND lui est documenté dans les RFC 6494cite-ref-rfc-6494-39-0[39] et RFC 6495cite-ref-rfc-6495-40-0[40]. Ces RFC sont un produit du groupe de travail SIDR (« Secure Inter-Domain Routing ») de l'IETFcite-ref-41[41] et sont basées sur une analyse des menaces documentée dans la RFC 4593cite-ref-rfc-4593-42-0[42]. Ces RFC couvrent la validation de l'origine BGP, tandis que la validation du chemin est fournie par BGPsec, qui a été normalisée séparément dans la RFC 8205cite-ref-rfc-8205-43-0[43]. Il existe plusieurs implémentations pour la validation de l'origine des préfixes à l'heure actuellecite-ref-44[44].
La RFC 6494 met à jour par le Secure Neighbor Discovery (SEND) le protocole Neighbor Discovery (ND) afin d'utiliser RPKI sur l'annonce de présence d'un routeur IPv6. Elle définit un type de certificat particulier SEND: certificat RPKI RFC 6487 modifié qui doit inclure une unique extension de délégation d'adresse IP RFC 3779cite-ref-45[45].
Références
cite-note-rfc-5280-11. ↑ (en) Request for comments no 5280
cite-note-rfc-3779-22. ↑ (en) Request for comments no 3779
cite-note-33. ↑ A Profile for Route Origin Authorizations (ROAs), M. Lepinski, S. Kent, D. Kong, May 9, 2011
cite-note-44. ↑ azimovbogomazovbushpatel2023Azimov, Bogomazov, Bush, Patel, Snijders et Sriram, « BGP AS_PATH Verification Based on Autonomous System Provider Authorization (ASPA) Objects », Internet Engineering Task Force, 29 août 2023
cite-note-55. ↑ 2019« GitHub - dragonresearch/rpki.net: Dragon Research Labs rpki.net RPKI toolkit », 23 novembre 2019
cite-note-rfc-8182-66. ↑ (en) Request for comments no 8182
cite-note-77. ↑ bruijnzeelsmuravskiyweberaustein2017Bruijnzeels, Muravskiy, Weber et Austein, « RFC 8182 - The RPKI Repository Delta Protocol », sur datatracker.ietf.org, juillet 2017
cite-note-88. ↑ kristoffbushkanichmichaelson2020john-kristoffrandy-bushchris-kanichgeorge-michaelson2020John Kristoff, Randy Bush, Chris Kanich, George Michaelson, Phokeer, Schmidt et Wählisch, Proceedings of the ACM Internet Measurement Conference, New York, NY, USA, Association for Computing Machinery, coll. « IMC '20 », 27 octobre 2020, 484–491 p. (ISBN 978-1-4503-8138-3, DOI 10.1145/3419394.3423622, S2CID 225042016), « On Measuring RPKI Relying Parties »
cite-note-99. ↑ kristoffbushkanichmichaelson2020john-kristoffrandy-bushchris-kanichgeorge-michaelson2020(en) John Kristoff, Randy Bush, Chris Kanich, George Michaelson, Phokeer, Schmidt et Wählisch, Proceedings of the ACM Internet Measurement Conference, ACM, 27 octobre 2020, 484–491 p. (ISBN 978-1-4503-8138-3, DOI 10.1145/3419394.3423622, S2CID 225042016), « On Measuring RPKI Relying Parties »
cite-note-1010. ↑ fontugnephokeerpelsservermeulen2023romain-fontugneamreesh-phokeercristel-pelsserkevin-vermeulen2023(en) Romain Fontugne, Amreesh Phokeer, Cristel Pelsser et Kevin Vermeulen, « RPKI Time-of-Flight: Tracking Delays in the Management, Control, and Data Planes », dans Passive and Active Measurement, vol. 13882, Springer Nature Switzerland, 2023, 429–457 p. (ISBN 978-3-031-28485-4, DOI 10.1007/978-3-031-28486-1_18, lire en ligne)
cite-note-rfc-6810-1111. ↑ (en) Request for comments no 6810
cite-note-1212. ↑ bushaustein2013Bush et Austein, « RFC 6810 - The Resource Public Key Infrastructure (RPKI) to Router Protocol », sur datatracker.ietf.org, janvier 2013
cite-note-1313. ↑ (en) « BGP Configuration Guide for Cisco NCS 5500 Series Routers, IOS XR Release 7.2.x - Implementing BGP [Cisco IOS XR Software Release 7.2] », sur Cisco (consulté le 7 juillet 2024)
cite-note-1414. ↑ (en) Geoff Huston et George G. Michaelson 2012Validation of Route Origination Using the Resource Certificate Public Key Infrastructure (PKI) and Route Origin Authorizations (ROAs) (rapport), Internet Engineering Task Force, février 2012 (lire en ligne)
cite-note-1515. ↑ livadariufontugnephokeercandela2024ioana-livadariuromain-fontugneamreesh-phokeermassimo-candela2024(en) Ioana Livadariu, Romain Fontugne, Amreesh Phokeer et Massimo Candela, « A Tale of Two Synergies: Uncovering RPKI Practices for RTBH at IXPs », Passive and Active Measurement, Springer Nature Switzerland, 2024, p. 88–103 (ISBN 978-3-031-56252-5, DOI 10.1007/978-3-031-56252-5_5, lire en ligne, consulté le 7 juillet 2024)
cite-note-rfc-8097-1616. ↑ (en) Request for comments no 8097
cite-note-1818. ↑ « Cisco IOS IP Routing: BGP Command Reference - BGP Commands: M through N [Support] », Cisco
cite-note-1919. ↑ « Example: Configuring Origin Validation for BGP - Technical Documentation - Support - Juniper Networks », www.juniper.net
cite-note-2020. ↑ 2016« BGP Secure Routing Extension (BGP‑SRx) Prototype », NIST, 15 août 2016
cite-note-2121. ↑ 2019« Quagga with RPKI-RTR prefix origin validation support: rtrlib/quagga-rtrlib », 10 mai 2019
cite-note-2222. ↑ « Validating BGP Routes with RPKI in BIRD · ./brooks.sh », sur brooks.sh (consulté le 7 juillet 2024)
cite-note-2323. ↑ « RTRlib - The RPKI RTR Client C Library », rpki.realmv6.org
cite-note-2424. ↑ M. Wählisch, F. Holler, T.C. Schmidt, J.H. Schiller: "RTRlib: An Open-Source Library in C for RPKI-based Prefix Origin Validation, Proc. of USENIX Security Workshop CSET'13, Berkeley, CA, USA:USENIX Assoc., 2013.
cite-note-rfc-6480-2525. ↑ (en) Request for comments no 6480
cite-note-rfc-6481-2626. ↑ (en) Request for comments no 6481
cite-note-rfc-6482-2727. ↑ (en) Request for comments no 6482
cite-note-rfc-6483-2828. ↑ (en) Request for comments no 6483
cite-note-rfc-6484-2929. ↑ (en) Request for comments no 6484
cite-note-rfc-6485-3030. ↑ (en) Request for comments no 6485
cite-note-rfc-6486-3131. ↑ (en) Request for comments no 6486
cite-note-rfc-6487-3232. ↑ (en) Request for comments no 6487
cite-note-rfc-6488-3333. ↑ (en) Request for comments no 6488
cite-note-rfc-6489-3434. ↑ (en) Request for comments no 6489
cite-note-rfc-6490-3535. ↑ (en) Request for comments no 6490
cite-note-rfc-6491-3636. ↑ (en) Request for comments no 6491
cite-note-rfc-6492-3737. ↑ (en) Request for comments no 6492
cite-note-rfc-6493-3838. ↑ (en) Request for comments no 6493
cite-note-rfc-6494-3939. ↑ (en) Request for comments no 6494
cite-note-rfc-6495-4040. ↑ (en) Request for comments no 6495
cite-note-4141. ↑ « Secure Inter-Domain Routing (SIDR) », datatracker.ietf.org
cite-note-rfc-4593-4242. ↑ (en) Request for comments no 4593
cite-note-rfc-8205-4343. ↑ (en) Request for comments no 8205
cite-note-4444. ↑ Resource Public Key Infrastructure (RPKI) Router Implementation Report (RFC 7128)], R. Bush, R. Austein, K. Patel, H. Gredler, M. Waehlisch, February, 2014
cite-note-4545. ↑ « Blog Stéphane Bortzmeyer: RFC 6493: The RPKI Ghostbusters Record », sur www.bortzmeyer.org (consulté le 7 juillet 2024)
Liens externes
• Outil fourni par Cloudflare pour tester si le FAI effectue la validation RPKI
• Outil de Cloudflare pour explorer RPKI
• Documentation RPKI open source
• Journal de l'IETF - Sécuriser BGP et SIDR
• Une implémentation open source de l'ensemble complet des protocoles et outils RPKI
• RTRlib - Bibliothèque C client de routeur RPKI open source
• Outils RPKI open source de NLnet Labs développés dans Rust
• Implémentation de Quagga de RPKI
• BGP-SrX - Implémentation du routeur Quagga de la validation d'origine et de chemin basée sur RPKI.
• RPKI-Monitor - Surveillance et analyse mondiales et régionales du déploiement et de l'utilisation du RPKI.
• Statistiques de déploiement RPKI pour tous les RIR
• Carte thermique de déploiement du ROA mondial
• Banc d'essai RPKI d'EuroTransit GmbH
• BGPMON - Validation de l'annonce BGP avec RPKI
• Une introduction APNIC sur RPKI
• Informations sur la certification des ressources RIPE NCC (RPKI)
• Informations LACNIC sur RPKI
• Informations ARIN sur RPKI
• Déclaration du NRO sur le RPKI
• Déclaration de l'Internet Architecture Board sur RPKI
• Construire une nouvelle hiérarchie de gouvernance : RPKI et l'avenir du routage et de l'adressage Internet
• Protocole de passerelle sécurisée (Secure Border Gateway Protocol) (Secure-BGP)
• RFC de rapport sur la mise en œuvre de RPKI
• Portail d’Internet